let obj = {
  a: 1,
  b: 2,
  c: 3
}
Object.defineProperty(obj, 'b', {
  enumerable: false
})
// Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组，数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致
console.log(Object.keys(obj)) // ['a', 'c']


// Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名（包括不可枚举属性但不包括Symbol值作为名称的属性）组成的数组。
console.log(Object.getOwnPropertyNames(obj)) // ['a', 'b', 'c']